package com.medusa.aps.business.modules.basic.mp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.medusa.aps.business.model.pagination.Page;
import com.medusa.aps.business.modules.basic.model.input.CustomerInformationDTO;
import com.medusa.aps.business.modules.basic.model.input.CustomerInformationParam;
import com.medusa.aps.business.modules.basic.mp.entity.CustomerInformation;

import java.util.List;
import java.util.Set;

/**
 * 客户信息服务接口
 *
 * @author yuxh
 * @since 2023-08-14 17:37:43
 */
public interface CustomerInformationService extends IService<CustomerInformation> {

    /**
     * 分页查询客户信息
     *
     * @param customerInformationParam 分页对象
     * @return 客户信息分页数据
     */
    Page<CustomerInformation> pageCustomerInformation(CustomerInformationParam customerInformationParam);

    /**
     * 批量新增客户
     *
     * @param customerInformationDTOS 客户信息集合
     */
    void saveBatchCustomerInformation(List<CustomerInformationDTO> customerInformationDTOS);

    /**
     * 修改数据客户信息
     *
     * @param customerInformationDTO 客户信息
     */
    void updateCustomerInformation(CustomerInformationDTO customerInformationDTO);

    /**
     * 根据客户编码或客户名称查询客户基本信息
     *
     * @return 客户基本信息集合
     */
    List<CustomerInformation> getCustomerInformation(String customerCode, String customerName, String customerCompanyName);

    /**
     * 删除数据
     *
     * @param ids id集合
     */
    void delete(Set<Long> ids);
}

